package cn.bugstack.springframework.beans.factory;

import cn.bugstack.springframework.beans.BeansException;
import cn.bugstack.springframework.beans.factory.config.AutowireCapableBeanFactory;
import cn.bugstack.springframework.beans.factory.config.BeanDefinition;
import cn.bugstack.springframework.beans.factory.config.ConfigurableBeanFactory;

/**
 * @param
 * @author oyz
 * @version 1.1.0
 * @description: TODO
 * @date 2022-8-22 8:45
 */
public interface ConfigurableListableBeanFactory extends ListableBeanFactory, AutowireCapableBeanFactory, ConfigurableBeanFactory {

    /**
     * @description: 获取到单实例的bean对象
     * @author oyz
     * @param
     * @date 2022-8-23 9:45
     * @version 1.1.1
     */
    void preInstantiateStringletons() throws BeansException;
    
    /**
     * @description: 获取beanDefintion
     * @author AXZQ
     * @param beanName
     * @date 2022-8-24 17:28
     * @version 1.1.1
     */
    BeanDefinition getBeanDefinition(String beanName) throws BeansException;
}
